package cn.tedu.api;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Iterator;

//测试 collection接口
public class Test3_Collection {
    public static void main(String[] args) {
        //1 创建对象----泛型约束的类型是  引用类型   不能是基本类型
        Collection<Integer> a = new ArrayList();
        a.add(1);
        a.add(2);
        a.add(3);
        a.add(4);
        a.add(5);
        System.out.println(a);
        //2调用对象
//        a.clear();//清空集合
        System.out.println(a.contains(2));
        System.out.println(a.equals(56));
        System.out.println(a.hashCode());
        System.out.println(a.remove(3));
        System.out.println(a.isEmpty());
        System.out.println(a.size());
        Object[] os = a.toArray();
        System.out.println(Arrays.toString(os));//[1, 2, 4, 5]
        //TODO 集合间的操作
        Collection<Integer> c2 = new ArrayList<>();
        c2.add(1);
        c2.add(2);
        c2.add(3);
        System.out.println(c2);

        System.out.println(a.addAll(c2));
        System.out.println(a);


//        a.removeAll(c2);
//        System.out.println(c2);
//        System.out.println(a);
//        System.out.println(a.removeAll(c2));
        System.out.println(a.containsAll(c2));
//TODO  获取集合里的元素
        //方式一 Iterator<> iterator --- 专门用来迭代集合里的元素
        Iterator<Integer> it = a.iterator();
        while(it.hasNext()){//hasNext()判断有元素吗?有的话就返回true
            Integer in = it.next();//next()获取元素+把指针往后移一位
            System.out.println(in);
        }
        //方式二： foreach---collection
        //语法：for(数据的类型  变量名：容器)
        for(Integer in:a){//高效遍历数组和集合
            System.out.println(in);
        }

    }
}
